The promise of using the global computer network, colloquially referred to as the Internet, to allow many different individuals from disparate geographic and temporal regions to communicate and collaborate in real-time or near real-time remain largely unfulfilled. Differing bandwidths of different connections result in difficulties sharing time-sensitive information. The simplest example of this effect is “screen sharing,” that is, updating the screens of multiple clients such that each one mirrors a server's screen as closely as possible. Either screen updates are limited to the speed of the slowest connection, or users communicating over lower-bandwidth connections are “left behind” by those with higher-bandwidth connections. Further, in order to be useful, a system should support several simultaneous information sources and many information consumers, e.g., one or more screen broadcasts to hundreds of viewers. Additionally, a system should allow information consumers to “join late,” that is, to begin receiving information from the information source at a point in time later than the beginning of the information flow.
Some attempts at solving this problem rely on a central server to analyze the information traffic and route traffic between information sources and information consumers. Although these techniques are moderately successful, use of a central server to make decisions based on the content of the routed information destroys the confidentiality of the routed information, which is unacceptable.